Dataset contains 4314 incidents across 95 countries
Time period covered: 1997 to 2025
Security Incidents Analysis: Global Patterns and Trends
1 Introduction
This section offers a global overview of security incidents using data from the Aid Worker Security Database, highlighting key geographic and temporal trends to better understand where violence against personnel is most concentrated.
The analysis reveals distinct hotspots of insecurity, which are explored further in the individual country reports that follow.
2 Dataset Overview
3 Global Incident Distribution
Security incidents aren’t distributed evenly across the world. Some regions experience higher concentrations due to various factors including geopolitical tensions, economic disparities, and historical conflicts. Visualizing this distribution helps us identify global patterns.
The map below displays incidents across the globe, with colors indicating the severity based on the number of people affected:
- Blue: No reported casualties
- Green: 1-5 affected individuals
- Orange: 6-20 affected individuals
- Red: More than 20 affected individuals
Clustering is used to manage dense areas where multiple incidents occurred in close proximity.
Code
#| echo: false
import folium
from folium.plugins import MarkerCluster
import numpy as np
def create_better_incidents_map(data):
center_lat = data['latitude'].mean()
center_lon = data['longitude'].mean()
# Use CartoDB dark theme for a sharper look
incidents_map = folium.Map(location=[center_lat, center_lon], zoom_start=2, tiles="CartoDB dark_matter")
marker_cluster = MarkerCluster().add_to(incidents_map)
valid_coords = data[data['latitude'].notna() & data['longitude'].notna()]
def get_color(affected):
if pd.isna(affected) or affected == 0:
return "#888888" # muted gray
elif affected <= 5:
return "#64C1FF" # light blue
elif affected <= 20:
return "#FF9A3C" # orange
else:
return "#FF5252" # red
for _, row in valid_coords.iterrows():
popup_text = f"""
<b>Country:</b> {row['country']}<br>
<b>Year:</b> {row['year']}<br>
<b>Total Affected:</b> {row['total_affected']}<br>
<b>Attack Type:</b> {row.get('means_of_attack', 'Unknown')}<br>
"""
folium.CircleMarker(
location=[row['latitude'], row['longitude']],
radius=np.clip(row['total_affected'] / 2, 3, 10), # dynamic sizing
popup=folium.Popup(popup_text, max_width=300),
fill=True,
fill_opacity=0.75,
color=get_color(row['total_affected']),
fill_color=get_color(row['total_affected']),
weight=0.8
).add_to(marker_cluster)
return incidents_map
#| echo: false
global_incidents_map = create_better_incidents_map(df)
global_incidents_map.save("images/global_security_incidents_map.html")
global_incidents_mapThe interactive map reveals that incidents are highly concentrated in specific regions, especially across parts of Africa and the Middle East.
You can zoom in on specific regions and click on individual markers to get more details about each incident, such as the country, year, total affected, and attack type.
4 Temporal Trends
Security landscapes evolve over time. By examining how incident patterns change year by year, we can identify emerging hotspots and areas where security might be improving.
The animated choropleth map below shows how the distribution of security incidents has shifted over the years. Darker colors indicate higher numbers of incidents.
This visualization reveals several insights:
- The global distribution of security incidents has shifted significantly over time
- Some countries that were previously security hotspots have shown improvement
- New areas of concern have emerged in recent years
- The total number of recorded incidents shows notable year-to-year variation
You can use the play button to animate the map through time, or manually select specific years using the slider.
4.1 Annual Trends at a Glance
The chart below offers a simpler view of yearly totals across all countries, showing how global incident volume has risen over time.
The interactive bar chart shows:
- A general upward trend in reported incidents
- Distinct spikes likely linked to global conflicts or regional escalations
- Possible influence from improved data collection and reporting
Together, these visuals underscore how fluid the security landscape is—and why real-time analysis and localized response strategies matter.
5 Countries with Most Incidents: All-Time Analysis
First, let’s look at which countries have experienced the most security incidents over the entire period covered by our dataset:
This visualization highlights the countries that have historically been most affected by security incidents. Several factors might contribute to a country appearing on this list:
- Long-standing regional conflicts
- Political instability
- Higher population (which can increase the absolute number of incidents)
- More comprehensive reporting of incidents
6 Countries with Most Incidents: Recent Trends
Historical patterns don’t always reflect current realities. To identify emerging security hotspots, we need to focus on more recent data. The following analysis examines incident patterns over the past 10 years:
This recent trends analysis shows:
- Countries that have experienced deteriorating security situations in the past decade
- An Emerging hotspot (Mali) that did not appear in historical data
By comparing this visualization with the all-time analysis, we can identify significant shifts in global security patterns.
7 Conclusion
This global analysis provides a comprehensive overview of the security challenges faced by humanitarian personnel across time and geography. By breaking down patterns in attack types, contexts, affected demographics, and organizational exposure, we gain insight into the evolving nature of these risks. While some regions remain persistent hotspots, new threats continue to emerge, underscoring the need for real-time monitoring and adaptive security strategies.